📜

[Beaver91]Efficient Multiplarty Protools Using Circuit Randomization

difference between theory and practice: efficiency

In practice:

  1. express F as a circuit CF
  1. call on each player to secretly share xix_i
  1. proceed to perform " secret addition and multiplication" on secretly shared values

1 Introduction

Secrete Sharing:

Advantage of using polynomials

easy to combine two secrets multiplication by a publicly known constant

But when secrets are multiplied: it's hard

fan-in: [Electronics]the number of inputs that can be connected to the circuit.

Notions:

Our Solution:

dose evaluate the circuit level by level, but each level is simply a reconstruction of secrets

The Idea

completely randomize every input and output to each gate in CFC_F plus a very simple error-correction procedure

error-correcting procedure

One-time tables

Analogous to one-time pad

One-time table: a set of precomputed values that support direct secure computation without broadcast or private channels

2 An Efficient Protocol for Circuit Evaluation

UnifSecret

UnifSecret:

generate uniformly random secrets by adding uniformly random secrets shared by each party.

Calculate Circuit:

Circuit:

evaluate: 把电路的gates按照depth分层,一层一层的计算,每次计算出该层的输出(new secrets),就是下一层的输入。

Share-Compute-Reveal Paradigm:

  1. evaluate gates at each level
  1. thereby produce new secrets xkx_k, until the final secret xNx_Nis calculated
  1. use REC reconstruct the result xNx_N

Additive Gate

An additive gate:

  1. create N uniformly random values rir_i for every xix_i 用UnifySecret的方式,every party generate a random secret,其和就是分配给每个wire的random values。 (这里不考虑secret sharing,只考虑value calculation)
  1. for every gate gkg_k : compute sk=gk(rik,rjk)s_k=g_k(r_{i_k},r_{j_k}) every party可以直接对random value (pieces)计算,这里是加法门,所以sk=rik+rjks_k=r_{i_k}+r_{j_k}。不过each party得到的其实是PIECE(sks_k)。
  1. consider corrections Δi=rixi\Delta_i=r_i-x_i to each wire 对于一层gates而言,input wire的corrections (pieces)可以locally calculate。而当要计算output wire的corrections时,就需要REC input wire的correction,所有parties的pieces 加起来,得到Δi\Delta_i
  1. compute the correction Δk\Delta_k: output wire of gk(+)g_k(+)
    1. praty know(pieces):
      1. random inputs rik,rjkr_{i_k},r_{j_k}and their results sk=rik+rjks_k=r_{i_k}+r_{j_k}
      1. random output rkr_k
      1. input wire corrections Δik,Δjk\Delta_{i_k}, \Delta_{j_k}
    1. party calculate output wire correction: Δk=rkskΔikΔjk\Delta_k = r_k-s_k-\Delta_{i_k}-\Delta_{j_k}
    1. Δk\Delta_k is a linear combination of "known" constant Δik\Delta_{i_k} and Δjk\Delta_{j_k}with the values rkr_k and sks_k 刚刚也说过,在计算这一层gates前,需要reconstruct input wire的correction,所以计算时, Δik\Delta_{i_k} and Δjk\Delta_{j_k}是已经经过REC操作,every party都把他的pieces分享处理(但不会reveal info),得到 constant Δik\Delta_{i_k} and Δjk\Delta_{j_k}

Multiplicative Gate:

Multiplicative gates:

Security:

Cost of REC:

Figure 2: the whole protocol

2.1 An Optimization

Compress additive gates:

by computing the corrections to outputs at the same time as the corrections to input wires no "randomization" of additive gates

Example:

把先做乘法,在做什么加法两层运算,压缩为一层运算。
Add gate output correction和其input没有关系,包括r5,r6,Δ5,Δ6r_5,r_6,\Delta_5,\Delta_6,反而是和前一层的MUL gates的input有关系。

Deduce: